Return to doc.sitecore.com

Valid for Sitecore 6.3.1 Initial and later
Release Notes

The latest release information about the Sitecore E-Commerce Fundamental Edition.
We welcome your feedback. On the forum pages, we have set up 2 forums:

1.  Config Changes

This section describes the config file changes between SEFE releases.

1.1.  Config file changes in SEFE 1.1.0 rev.110511

The config file changes in SEFE 1.1.0 rev.110511 compared to SEFE 1.0.2.

Unity.config changes:

  1. Remove the following obsolete payment provider aliases from the <unity> section. The payment provider model has been simplified and does not require the differentiation between “online”, “offline” and “reservable” payment providers anymore:
    <alias alias="IPaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IPaymentProvider`1, Sitecore.Ecommerce.DomainModel"/>
    <alias alias="IOfflinePaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IOfflinePaymentProvider`1, Sitecore.Ecommerce.DomainModel"/>
    <alias alias="IOnlinePaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IOnlinePaymentProvider`1, Sitecore.Ecommerce.DomainModel"/>
    <alias alias="IReservableOnlinePaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.IReservableOnlinePaymentProvider`2, Sitecore.Ecommerce.DomainModel"/>
     
  2. Add the following payment provider alias to the <unity> section. There is an alias for the new unified base payment provider:
    <alias alias="PaymentProvider" type="Sitecore.Ecommerce.DomainModel.Payments.PaymentProvider, Sitecore.Ecommerce.DomainModel"/>
       
  3. Remove the “IOffline” prefix from the payment provider registrations in the <unity><container> section: 
          <register type="IOfflinePaymentProvider" mapTo="OfflinePaymentProvider">
            <property name="PaymentSystem" />
          </register>
          <register type="IOfflinePaymentProvider" mapTo="OfflinePaymentProvider" name="PayByCheck">
            <property name="PaymentSystem" />
          </register>
          <register type="IOfflinePaymentProvider" mapTo="OfflinePaymentProvider" name="MoneyTransfer">
            <property name="PaymentSystem" />
          </register>
     
  4. Add the following mapping aliases to the <unity> section. These are aliases for the new Entity Mappers and Member Converters:
        <alias alias="Item" type="Sitecore.Data.Items.Item, Sitecore.Kernel" />
        <alias alias="IEntity" type="Sitecore.Ecommerce.DomainModel.Data.IEntity, Sitecore.Ecommerce.DomainModel" />
        <alias alias="EntityMapper" type="Sitecore.Ecommerce.DomainModel.Data.EntityMapper`2, Sitecore.Ecommerce.DomainModel"/>
        <alias alias="IEntityMemberConverter" type="Sitecore.Ecommerce.DomainModel.Data.IEntityMemberConverter, Sitecore.Ecommerce.DomainModel"/>
        <alias alias="EntityToItemMapper" type="Sitecore.Ecommerce.Data.Mapping.EntityToItemMapper, Sitecore.Ecommerce.Kernel"/>
        <alias alias="ItemToEntityMapper" type="Sitecore.Ecommerce.Data.Mapping.ItemToEntityMapper, Sitecore.Ecommerce.Kernel"/>
        <alias alias="ConvertibleEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.ConvertibleEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
        <alias alias="BooleanEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.BooleanEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
        <alias alias="DateTimeEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.DateTimeEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
        <alias alias="ProductSpecificationEntityMemberConverter" type="Sitecore.Ecommerce.Data.Mapping.Converters.ProductSpecificationEntityMemberConverter, Sitecore.Ecommerce.Kernel"/>
     
  5. Add the following mapping registrations to the <unity><container> section. They bind the mapping contracts with implementations:
          <register type="EntityMapper[IEntity, Item]" mapTo="EntityToItemMapper" />
          <register type="EntityMapper[Item, IEntity]" mapTo="ItemToEntityMapper" />
          <register type="IEntityMemberConverter" mapTo="ConvertibleEntityMemberConverter" />
          <register type="IEntityMemberConverter" mapTo="BooleanEntityMemberConverter" name="BooleanEntityMemberConverter" />
          <register type="IEntityMemberConverter" mapTo="DateTimeEntityMemberConverter" name="DateTimeEntityMemberConverter" />
          <register type="IEntityMemberConverter" mapTo="ProductSpecificationEntityMemberConverter" name="ProductSpecificationEntityMemberConverter" />
     
  6. Add the following constructor injection to the <unity><container><register type="IOrderManager"> section. It makes FastQuery the default search provider, which increases the performance:
            <constructor>
              <param name="searchProvider">
                <dependency name="FastQuerySearchProvider" />
              </param>
            </constructor>
     
  7. Add the following order status aliases to the <unity> section. These statuses are used by the new reservable payment providers to reflect the current order state:
        <alias alias="Authorized" type="Sitecore.Ecommerce.Orders.Statuses.Authorized, Sitecore.Ecommerce.Kernel"/>
        <alias alias="Captured" type="Sitecore.Ecommerce.Orders.Statuses.Captured, Sitecore.Ecommerce.Kernel"/>
      
  8. Add the following order status registrations to the <unity><container> section. They bind the base order status class with the new implementations:
          <register type="OrderStatus" mapTo="Authorized" name="Authorized" />
          <register type="OrderStatus" mapTo="Captured" name="Captured" />  
     
  9. Add the following collection aliases to the <unity> section:
        <alias alias="IEnumerable" type="System.Collections.Generic.IEnumerable`1, mscorlib"/>
        <alias alias="Collection" type="System.Collections.ObjectModel.Collection`1, mscorlib"/>
     
  10. Add the following string collection registration to the <unity><container> section:
          <register type="IEnumerable[string]" mapTo="Collection[string]">
            <constructor/>
          </register>
     
  11. Add the following Product Factory aliases to the <unity> section:
        <alias alias="ProductFactory" type="Sitecore.Ecommerce.DomainModel.Products.ProductFactory, Sitecore.Ecommerce.DomainModel"/>
        <alias alias="ItemProductFactory" type="Sitecore.Ecommerce.Products.ItemProductFactory, Sitecore.Ecommerce.Kernel"/>
     
  12. Add the following Product Factory registration to the <unity><container> section:
    <register type="ProductFactory" mapTo="ItemProductFactory" />

Sitecore.Ecommerce.config:

  1. Add the following pipeline processors to the <sitecore><processors> section. The processors monitor if an order item or an order line item was changed and perform the order price recalculation if needed:
          <uiDeleteItems>
            <processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:before="processor[@type='Sitecore.Shell.Framework.Pipelines.DeleteItems,Sitecore.Kernel' and @method='Execute']" method="OnItemDeleted" />
          </uiDeleteItems>
          <saveUI>
            <processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:after="processor[@type='Sitecore.Pipelines.Save.Save, Sitecore.Kernel']" method="OnItemSaved"/>
          </saveUI>
          <uiDuplicateItem>
            <processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:after="processor[@type='Sitecore.Shell.Framework.Pipelines.DuplicateItem, Sitecore.Kernel'  and @method='Execute']" method="OnItemDuplicated"/>
          </uiDuplicateItem>
          <uiCopyItems>
            <processor mode="on" type="Sitecore.Ecommerce.Orders.OrderItemEventHandler, Sitecore.Ecommerce.Kernel" patch:after="processor[@type='Sitecore.Shell.Framework.Pipelines.CopyItems,Sitecore.Kernel' and @method='Execute']" method="OnItemCopied" />
          </uiCopyItems>
      
  2. Add the following grid page size setting to the <sitecore><settings> section (optional). This setting overwrites the default Sitecore value (15) in order to decrease the Catalogs grid size: 
          <setting name="GridPageSize">
            <patch:attribute name="value">10</patch:attribute> 
          </setting>
      
  3. Add the following pipeline to the <sitecore><pipelines> section. The processor hides the Content Editor fields which store Product Catalog form data such as search criteria, selected products and product selection methods:
          <getContentEditorFields>
            <processor type="Sitecore.Shell.Applications.ContentEditor.Pipelines.GetContentEditorFields.GetFields, Sitecore.Client" >
              <patch:attribute name="type">Sitecore.Ecommerce.Shell.Applications.ContentEditor.Pipelines.GetContentEditorFields.GetFields, Sitecore.Ecommerce.Shell</patch:attribute>
              <HiddenFields>{81AD5AA7-316C-4F79-9DFF-8FEBFCFBFB4E}|{4423D09D-E95A-4827-B12D-E682BE2DE834}|{39BB71D9-E6B4-4F50-BFAC-1C586724D3B9}|{4200DA93-E824-4FA0-B93B-5F9AB662E3DC}</HiddenFields>
            </processor>
          </getContentEditorFields>
     

2.  Release History

Some of the issues described on this page contain internal reference numbers listed in parentheses. You can use these reference numbers to communicate with Sitecore about a particular issue or feature.

May 13, 2011

Sitecore E-Commerce Fundamental Edition 1.1.0 rev.110511 is released.
Change log

New features

  1. PayPal has been implemented as a new payment provider. Here is the full list of supported payment providers:
  2. The implementation of payment providers, payment provider contracts and related base classes has been re-factored. All providers now implement our IReservable contract, e.g. there can be separate reservation and capturing of payments, when the order has been processed. For more information, see the Sitecore E-Commerce Payment Method Reference Guide.
  3. The payment providers are available as separate downloads on SDN, so only the required one(s) need to be downloaded and configured.
  4. Re-factored and improved PIM implementation and API. A number of things have been improved:
    1. The default implementation of product classes which wraps the CMS, items storing product data, now includes a dictionary-like collection that can map all simple product specification data between objects and CMS items, making it possible to use a few product classes to map to multiple specialized product templates in CMS. Users can use this feature to easily add custom information about products to the system without having to recompile their solution.
    2. New and re-factored data mapping and data conversion implementation for mapping Sitecore items to .NET product classes. The data converters are registered in Unity and can be replaced and/or extended to users’ needs.
    3. A new mapping implementation doesn’t reply to the Entity attribute specifying template ID for the class or field names per attribute. A default mapping scheme will do the mapping implicitly, but it can be overwritten using the Entity .NET attribute to specify specific name and/or type conversion.
    4. It’s now possible to implement multiple different product classes in C# that maps to different product templates in Sitecore. The registration is done in Unity and will return back to the default mapping, if no specific mapping is configured.
    5. The API is backward compatible, but the returned product types will now depend on the product template. The mapping is done using a new PIM API component named ProductFactory, which is configured in Unity, so that it can be replaced and customized.
  5. The Product Catalog used to manage and configure products has been updated to utilize the new PIM implementation and will also resort to product item lookup, in case the product class doesn’t contain the property configured as column in the search result grids.
  6. The Order and Product Catalogs have been optimized to provide faster order and product search as well as paging.
  7. Minimal order management functionality has been added to the CE.
    1. If one or more order lines are updated, removed or added, the order price will be re-calculated.
    2. During the checkout in the SEFE example pages installation, the payment is now only reserved and the payment system specific reservation ticket is stored on the order for later capturing or cancelling. A new order state “Captured” has been included, which contains business logic for capturing the full reservation amount on the order. Business login has been added to the Cancelled order state so the payment reservation is cancelled when set.

Minor improvements

  1. The system fields for the Product Catalog regarding search criteria and configured products have been hidden by default to prevent people from updating the values in two places and avoid conflicts.
  2. Fast Query is now used by default for order searching, resulting in faster search results and search criteria being case-insensitive. The Unity file has been updated using explicit parameter injection telling the OrderManager which Search Provider to use, making it clear which provider is used and easier to change.
  3. It’s been tested that Lucene can be configured as a search provider for orders. It requires a minor customization of the default DatabaseCrawler to include the item ID by overwriting the AddSpecialFields method.

Issues resolved

3.  Known issues

The known issues present in various versions of the Sitecore E-Commerce Fundamental Edition.

This section describes the known issues associated with SEFE 1.1.0 rev.110511.

Shopping Cart:

Checkout:

Payment:

Catalog:

Site Settings:

Example pages:

Page Editor/Preview mode:

Localization: